{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Modeling and Simulation in Python\n",
    "\n",
    "Chapter 5\n",
    "\n",
    "Copyright 2017 Allen Downey\n",
    "\n",
    "License: [Creative Commons Attribution 4.0 International](https://creativecommons.org/licenses/by/4.0)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Configure Jupyter so figures appear in the notebook\n",
    "%matplotlib inline\n",
    "\n",
    "# Configure Jupyter to display the assigned value after an assignment\n",
    "%config InteractiveShell.ast_node_interactivity='last_expr_or_assign'\n",
    "\n",
    "# import functions from the modsim.py module\n",
    "from modsim import *"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Reading data\n",
    "\n",
    "Pandas is a library that provides tools for reading and processing data.  `read_html` reads a web page from a file or the Internet and creates one `DataFrame` for each table on the page."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "from pandas import read_html"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The data directory contains a downloaded copy of https://en.wikipedia.org/wiki/World_population_estimates\n",
    "\n",
    "The arguments of `read_html` specify the file to read and how to interpret the tables in the file.  The result, `tables`, is a sequence of `DataFrame` objects; `len(tables)` reports the length of the sequence."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "6"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "filename = 'data/World_population_estimates.html'\n",
    "tables = read_html(filename, header=0, index_col=0, decimal='M')\n",
    "len(tables)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can select the `DataFrame` we want using the bracket operator.  The tables are numbered from 0, so `tables[2]` is actually the third table on the page.\n",
    "\n",
    "`head` selects the header and the first five rows."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>United States Census Bureau (2017)[28]</th>\n",
       "      <th>Population Reference Bureau (1973–2016)[15]</th>\n",
       "      <th>United Nations Department of Economic and Social Affairs (2015)[16]</th>\n",
       "      <th>Maddison (2008)[17]</th>\n",
       "      <th>HYDE (2007)[24]</th>\n",
       "      <th>Tanton (1994)[18]</th>\n",
       "      <th>Biraben (1980)[19]</th>\n",
       "      <th>McEvedy &amp; Jones (1978)[20]</th>\n",
       "      <th>Thomlinson (1975)[21]</th>\n",
       "      <th>Durand (1974)[22]</th>\n",
       "      <th>Clark (1967)[23]</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Year</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1950</th>\n",
       "      <td>2557628654</td>\n",
       "      <td>2.516000e+09</td>\n",
       "      <td>2.525149e+09</td>\n",
       "      <td>2.544000e+09</td>\n",
       "      <td>2.527960e+09</td>\n",
       "      <td>2.400000e+09</td>\n",
       "      <td>2.527000e+09</td>\n",
       "      <td>2.500000e+09</td>\n",
       "      <td>2.400000e+09</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2.486000e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1951</th>\n",
       "      <td>2594939877</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2.572851e+09</td>\n",
       "      <td>2.571663e+09</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1952</th>\n",
       "      <td>2636772306</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2.619292e+09</td>\n",
       "      <td>2.617949e+09</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1953</th>\n",
       "      <td>2682053389</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2.665865e+09</td>\n",
       "      <td>2.665959e+09</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1954</th>\n",
       "      <td>2730228104</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2.713172e+09</td>\n",
       "      <td>2.716927e+09</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      United States Census Bureau (2017)[28]  \\\n",
       "Year                                           \n",
       "1950                              2557628654   \n",
       "1951                              2594939877   \n",
       "1952                              2636772306   \n",
       "1953                              2682053389   \n",
       "1954                              2730228104   \n",
       "\n",
       "      Population Reference Bureau (1973–2016)[15]  \\\n",
       "Year                                                \n",
       "1950                                 2.516000e+09   \n",
       "1951                                          NaN   \n",
       "1952                                          NaN   \n",
       "1953                                          NaN   \n",
       "1954                                          NaN   \n",
       "\n",
       "      United Nations Department of Economic and Social Affairs (2015)[16]  \\\n",
       "Year                                                                        \n",
       "1950                                       2.525149e+09                     \n",
       "1951                                       2.572851e+09                     \n",
       "1952                                       2.619292e+09                     \n",
       "1953                                       2.665865e+09                     \n",
       "1954                                       2.713172e+09                     \n",
       "\n",
       "      Maddison (2008)[17]  HYDE (2007)[24]  Tanton (1994)[18]  \\\n",
       "Year                                                            \n",
       "1950         2.544000e+09     2.527960e+09       2.400000e+09   \n",
       "1951         2.571663e+09              NaN                NaN   \n",
       "1952         2.617949e+09              NaN                NaN   \n",
       "1953         2.665959e+09              NaN                NaN   \n",
       "1954         2.716927e+09              NaN                NaN   \n",
       "\n",
       "      Biraben (1980)[19]  McEvedy & Jones (1978)[20]  Thomlinson (1975)[21]  \\\n",
       "Year                                                                          \n",
       "1950        2.527000e+09                2.500000e+09           2.400000e+09   \n",
       "1951                 NaN                         NaN                    NaN   \n",
       "1952                 NaN                         NaN                    NaN   \n",
       "1953                 NaN                         NaN                    NaN   \n",
       "1954                 NaN                         NaN                    NaN   \n",
       "\n",
       "     Durand (1974)[22]  Clark (1967)[23]  \n",
       "Year                                      \n",
       "1950               NaN      2.486000e+09  \n",
       "1951               NaN               NaN  \n",
       "1952               NaN               NaN  \n",
       "1953               NaN               NaN  \n",
       "1954               NaN               NaN  "
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "table2 = tables[2]\n",
    "table2.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "`tail` selects the last five rows."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>United States Census Bureau (2017)[28]</th>\n",
       "      <th>Population Reference Bureau (1973–2016)[15]</th>\n",
       "      <th>United Nations Department of Economic and Social Affairs (2015)[16]</th>\n",
       "      <th>Maddison (2008)[17]</th>\n",
       "      <th>HYDE (2007)[24]</th>\n",
       "      <th>Tanton (1994)[18]</th>\n",
       "      <th>Biraben (1980)[19]</th>\n",
       "      <th>McEvedy &amp; Jones (1978)[20]</th>\n",
       "      <th>Thomlinson (1975)[21]</th>\n",
       "      <th>Durand (1974)[22]</th>\n",
       "      <th>Clark (1967)[23]</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Year</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2012</th>\n",
       "      <td>7013871313</td>\n",
       "      <td>7.057075e+09</td>\n",
       "      <td>7.080072e+09</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2013</th>\n",
       "      <td>7092128094</td>\n",
       "      <td>7.136796e+09</td>\n",
       "      <td>7.162119e+09</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2014</th>\n",
       "      <td>7169968185</td>\n",
       "      <td>7.238184e+09</td>\n",
       "      <td>7.243784e+09</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015</th>\n",
       "      <td>7247892788</td>\n",
       "      <td>7.336435e+09</td>\n",
       "      <td>7.349472e+09</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016</th>\n",
       "      <td>7325996709</td>\n",
       "      <td>7.418152e+09</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      United States Census Bureau (2017)[28]  \\\n",
       "Year                                           \n",
       "2012                              7013871313   \n",
       "2013                              7092128094   \n",
       "2014                              7169968185   \n",
       "2015                              7247892788   \n",
       "2016                              7325996709   \n",
       "\n",
       "      Population Reference Bureau (1973–2016)[15]  \\\n",
       "Year                                                \n",
       "2012                                 7.057075e+09   \n",
       "2013                                 7.136796e+09   \n",
       "2014                                 7.238184e+09   \n",
       "2015                                 7.336435e+09   \n",
       "2016                                 7.418152e+09   \n",
       "\n",
       "      United Nations Department of Economic and Social Affairs (2015)[16]  \\\n",
       "Year                                                                        \n",
       "2012                                       7.080072e+09                     \n",
       "2013                                       7.162119e+09                     \n",
       "2014                                       7.243784e+09                     \n",
       "2015                                       7.349472e+09                     \n",
       "2016                                                NaN                     \n",
       "\n",
       "      Maddison (2008)[17]  HYDE (2007)[24]  Tanton (1994)[18]  \\\n",
       "Year                                                            \n",
       "2012                  NaN              NaN                NaN   \n",
       "2013                  NaN              NaN                NaN   \n",
       "2014                  NaN              NaN                NaN   \n",
       "2015                  NaN              NaN                NaN   \n",
       "2016                  NaN              NaN                NaN   \n",
       "\n",
       "      Biraben (1980)[19]  McEvedy & Jones (1978)[20]  Thomlinson (1975)[21]  \\\n",
       "Year                                                                          \n",
       "2012                 NaN                         NaN                    NaN   \n",
       "2013                 NaN                         NaN                    NaN   \n",
       "2014                 NaN                         NaN                    NaN   \n",
       "2015                 NaN                         NaN                    NaN   \n",
       "2016                 NaN                         NaN                    NaN   \n",
       "\n",
       "     Durand (1974)[22]  Clark (1967)[23]  \n",
       "Year                                      \n",
       "2012               NaN               NaN  \n",
       "2013               NaN               NaN  \n",
       "2014               NaN               NaN  \n",
       "2015               NaN               NaN  \n",
       "2016               NaN               NaN  "
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "table2.tail()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Long column names are awkard to work with, but we can replace them with abbreviated names."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "table2.columns = ['census', 'prb', 'un', 'maddison', \n",
    "                  'hyde', 'tanton', 'biraben', 'mj', \n",
    "                  'thomlinson', 'durand', 'clark']"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here's what the DataFrame looks like now.  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>census</th>\n",
       "      <th>prb</th>\n",
       "      <th>un</th>\n",
       "      <th>maddison</th>\n",
       "      <th>hyde</th>\n",
       "      <th>tanton</th>\n",
       "      <th>biraben</th>\n",
       "      <th>mj</th>\n",
       "      <th>thomlinson</th>\n",
       "      <th>durand</th>\n",
       "      <th>clark</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Year</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1950</th>\n",
       "      <td>2557628654</td>\n",
       "      <td>2.516000e+09</td>\n",
       "      <td>2.525149e+09</td>\n",
       "      <td>2.544000e+09</td>\n",
       "      <td>2.527960e+09</td>\n",
       "      <td>2.400000e+09</td>\n",
       "      <td>2.527000e+09</td>\n",
       "      <td>2.500000e+09</td>\n",
       "      <td>2.400000e+09</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2.486000e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1951</th>\n",
       "      <td>2594939877</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2.572851e+09</td>\n",
       "      <td>2.571663e+09</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1952</th>\n",
       "      <td>2636772306</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2.619292e+09</td>\n",
       "      <td>2.617949e+09</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1953</th>\n",
       "      <td>2682053389</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2.665865e+09</td>\n",
       "      <td>2.665959e+09</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1954</th>\n",
       "      <td>2730228104</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2.713172e+09</td>\n",
       "      <td>2.716927e+09</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          census           prb            un      maddison          hyde  \\\n",
       "Year                                                                       \n",
       "1950  2557628654  2.516000e+09  2.525149e+09  2.544000e+09  2.527960e+09   \n",
       "1951  2594939877           NaN  2.572851e+09  2.571663e+09           NaN   \n",
       "1952  2636772306           NaN  2.619292e+09  2.617949e+09           NaN   \n",
       "1953  2682053389           NaN  2.665865e+09  2.665959e+09           NaN   \n",
       "1954  2730228104           NaN  2.713172e+09  2.716927e+09           NaN   \n",
       "\n",
       "            tanton       biraben            mj    thomlinson durand  \\\n",
       "Year                                                                  \n",
       "1950  2.400000e+09  2.527000e+09  2.500000e+09  2.400000e+09    NaN   \n",
       "1951           NaN           NaN           NaN           NaN    NaN   \n",
       "1952           NaN           NaN           NaN           NaN    NaN   \n",
       "1953           NaN           NaN           NaN           NaN    NaN   \n",
       "1954           NaN           NaN           NaN           NaN    NaN   \n",
       "\n",
       "             clark  \n",
       "Year                \n",
       "1950  2.486000e+09  \n",
       "1951           NaN  \n",
       "1952           NaN  \n",
       "1953           NaN  \n",
       "1954           NaN  "
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "table2.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The first column, which is labeled `Year`, is special.  It is the **index** for this `DataFrame`, which means it contains the labels for the rows.\n",
    "\n",
    "Some of the values use scientific notation; for example, `2.544000e+09` is shorthand for $2.544 \\cdot 10^9$ or 2.544 billion.\n",
    "\n",
    "`NaN` is a special value that indicates missing data."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Series\n",
    "\n",
    "We can use dot notation to select a column from a `DataFrame`.  The result is a `Series`, which is like a `DataFrame` with a single column."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Year\n",
       "1950    2557628654\n",
       "1951    2594939877\n",
       "1952    2636772306\n",
       "1953    2682053389\n",
       "1954    2730228104\n",
       "Name: census, dtype: int64"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "census = table2.census\n",
    "census.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Year\n",
       "2012    7013871313\n",
       "2013    7092128094\n",
       "2014    7169968185\n",
       "2015    7247892788\n",
       "2016    7325996709\n",
       "Name: census, dtype: int64"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "census.tail()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Like a `DataFrame`, a `Series` contains an index, which labels the rows.\n",
    "\n",
    "`1e9` is scientific notation for $1 \\cdot 10^9$ or 1 billion."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "From here on, we will work in units of billions."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Year\n",
       "1950    2.525149\n",
       "1951    2.572851\n",
       "1952    2.619292\n",
       "1953    2.665865\n",
       "1954    2.713172\n",
       "Name: un, dtype: float64"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "un = table2.un / 1e9\n",
    "un.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Year\n",
       "1950    2.557629\n",
       "1951    2.594940\n",
       "1952    2.636772\n",
       "1953    2.682053\n",
       "1954    2.730228\n",
       "Name: census, dtype: float64"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "census = table2.census / 1e9\n",
    "census.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here's what these estimates look like."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Saving figure to file figs/chap05-fig01.pdf\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot(census, ':', label='US Census')\n",
    "plot(un, '--', label='UN DESA')\n",
    "    \n",
    "decorate(xlabel='Year',\n",
    "         ylabel='World population (billion)')\n",
    "\n",
    "savefig('figs/chap05-fig01.pdf')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The following expression computes the elementwise differences between the two series, then divides through by the UN value to produce [relative errors](https://en.wikipedia.org/wiki/Approximation_error), then finds the largest element.\n",
    "\n",
    "So the largest relative error between the estimates is about 1.3%."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1.3821293828998855"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "max(abs(census - un) / un) * 100"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Exercise:** Break down that expression into smaller steps and display the intermediate results, to make sure you understand how it works.\n",
    "\n",
    "1.  Compute the elementwise differences, `census - un`\n",
    "2.  Compute the absolute differences, `abs(census - un)`\n",
    "3.  Compute the relative differences, `abs(census - un) / un`\n",
    "4.  Compute the percent differences, `abs(census - un) / un * 100`\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Year\n",
       "1950    0.032480\n",
       "1951    0.022089\n",
       "1952    0.017480\n",
       "1953    0.016188\n",
       "1954    0.017056\n",
       "1955    0.020448\n",
       "1956    0.023728\n",
       "1957    0.028307\n",
       "1958    0.032107\n",
       "1959    0.030321\n",
       "1960    0.016999\n",
       "1961    0.001137\n",
       "1962   -0.000978\n",
       "1963    0.008650\n",
       "1964    0.017462\n",
       "1965    0.021303\n",
       "1966    0.023203\n",
       "1967    0.021812\n",
       "1968    0.020639\n",
       "1969    0.021050\n",
       "1970    0.021525\n",
       "1971    0.023573\n",
       "1972    0.023695\n",
       "1973    0.022914\n",
       "1974    0.021304\n",
       "1975    0.018063\n",
       "1976    0.014049\n",
       "1977    0.011268\n",
       "1978    0.008441\n",
       "1979    0.007486\n",
       "          ...   \n",
       "1987   -0.018115\n",
       "1988   -0.023658\n",
       "1989   -0.028560\n",
       "1990   -0.031861\n",
       "1991   -0.037323\n",
       "1992   -0.038763\n",
       "1993   -0.040597\n",
       "1994   -0.042404\n",
       "1995   -0.042619\n",
       "1996   -0.041576\n",
       "1997   -0.040716\n",
       "1998   -0.040090\n",
       "1999   -0.039403\n",
       "2000   -0.039129\n",
       "2001   -0.038928\n",
       "2002   -0.038837\n",
       "2003   -0.039401\n",
       "2004   -0.040006\n",
       "2005   -0.041050\n",
       "2006   -0.041964\n",
       "2007   -0.043192\n",
       "2008   -0.044599\n",
       "2009   -0.046508\n",
       "2010   -0.057599\n",
       "2011   -0.061999\n",
       "2012   -0.066201\n",
       "2013   -0.069991\n",
       "2014   -0.073816\n",
       "2015   -0.101579\n",
       "2016         NaN\n",
       "Length: 67, dtype: float64"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Solution\n",
    "\n",
    "census - un"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Year\n",
       "1950    0.032480\n",
       "1951    0.022089\n",
       "1952    0.017480\n",
       "1953    0.016188\n",
       "1954    0.017056\n",
       "1955    0.020448\n",
       "1956    0.023728\n",
       "1957    0.028307\n",
       "1958    0.032107\n",
       "1959    0.030321\n",
       "1960    0.016999\n",
       "1961    0.001137\n",
       "1962    0.000978\n",
       "1963    0.008650\n",
       "1964    0.017462\n",
       "1965    0.021303\n",
       "1966    0.023203\n",
       "1967    0.021812\n",
       "1968    0.020639\n",
       "1969    0.021050\n",
       "1970    0.021525\n",
       "1971    0.023573\n",
       "1972    0.023695\n",
       "1973    0.022914\n",
       "1974    0.021304\n",
       "1975    0.018063\n",
       "1976    0.014049\n",
       "1977    0.011268\n",
       "1978    0.008441\n",
       "1979    0.007486\n",
       "          ...   \n",
       "1987    0.018115\n",
       "1988    0.023658\n",
       "1989    0.028560\n",
       "1990    0.031861\n",
       "1991    0.037323\n",
       "1992    0.038763\n",
       "1993    0.040597\n",
       "1994    0.042404\n",
       "1995    0.042619\n",
       "1996    0.041576\n",
       "1997    0.040716\n",
       "1998    0.040090\n",
       "1999    0.039403\n",
       "2000    0.039129\n",
       "2001    0.038928\n",
       "2002    0.038837\n",
       "2003    0.039401\n",
       "2004    0.040006\n",
       "2005    0.041050\n",
       "2006    0.041964\n",
       "2007    0.043192\n",
       "2008    0.044599\n",
       "2009    0.046508\n",
       "2010    0.057599\n",
       "2011    0.061999\n",
       "2012    0.066201\n",
       "2013    0.069991\n",
       "2014    0.073816\n",
       "2015    0.101579\n",
       "2016         NaN\n",
       "Length: 67, dtype: float64"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Solution\n",
    "\n",
    "abs(census - un)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Year\n",
       "1950    0.012862\n",
       "1951    0.008585\n",
       "1952    0.006674\n",
       "1953    0.006072\n",
       "1954    0.006286\n",
       "1955    0.007404\n",
       "1956    0.008439\n",
       "1957    0.009887\n",
       "1958    0.011011\n",
       "1959    0.010208\n",
       "1960    0.005617\n",
       "1961    0.000369\n",
       "1962    0.000311\n",
       "1963    0.002702\n",
       "1964    0.005350\n",
       "1965    0.006399\n",
       "1966    0.006829\n",
       "1967    0.006289\n",
       "1968    0.005827\n",
       "1969    0.005821\n",
       "1970    0.005832\n",
       "1971    0.006258\n",
       "1972    0.006166\n",
       "1973    0.005847\n",
       "1974    0.005332\n",
       "1975    0.004437\n",
       "1976    0.003388\n",
       "1977    0.002670\n",
       "1978    0.001965\n",
       "1979    0.001712\n",
       "          ...   \n",
       "1987    0.003591\n",
       "1988    0.004604\n",
       "1989    0.005461\n",
       "1990    0.005988\n",
       "1991    0.006900\n",
       "1992    0.007054\n",
       "1993    0.007277\n",
       "1994    0.007490\n",
       "1995    0.007423\n",
       "1996    0.007142\n",
       "1997    0.006903\n",
       "1998    0.006709\n",
       "1999    0.006511\n",
       "2000    0.006386\n",
       "2001    0.006274\n",
       "2002    0.006183\n",
       "2003    0.006197\n",
       "2004    0.006216\n",
       "2005    0.006302\n",
       "2006    0.006365\n",
       "2007    0.006473\n",
       "2008    0.006604\n",
       "2009    0.006805\n",
       "2010    0.008328\n",
       "2011    0.008860\n",
       "2012    0.009350\n",
       "2013    0.009772\n",
       "2014    0.010190\n",
       "2015    0.013821\n",
       "2016         NaN\n",
       "Length: 67, dtype: float64"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Solution\n",
    "\n",
    "abs(census - un) / un"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1.4014999251669376"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Solution\n",
    "\n",
    "max(abs(census - un) / census) * 100"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "`max` and `abs` are built-in functions provided by Python, but NumPy also provides version that are a little more general.  When you import `modsim`, you get the NumPy versions of these functions."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Constant growth"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can select a value from a `Series` using bracket notation.  Here's the first element:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2.557628654"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "census[1950]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "And the last value."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "7.325996709"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "census[2016]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "But rather than \"hard code\" those dates, we can get the first and last labels from the `Series`:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1950"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "t_0 = get_first_label(census)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2016"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "t_end = get_last_label(census)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "66"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "elapsed_time = t_end - t_0"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "And we can get the first and last values:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2.557628654"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "p_0 = get_first_value(census)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "7.325996709"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "p_end = get_last_value(census)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Then we can compute the average annual growth in billions of people per year."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "4.768368055"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "total_growth = p_end - p_0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.07224800083333333"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "annual_growth = total_growth / elapsed_time"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### TimeSeries"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now let's create a `TimeSeries` to contain values generated by a linear growth model."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>values</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "Series([], dtype: float64)"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "results = TimeSeries()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Initially the `TimeSeries` is empty, but we can initialize it so the starting value, in 1950, is the 1950 population estimated by the US Census."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>values</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1950</th>\n",
       "      <td>2.557629</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "1950    2.557629\n",
       "dtype: float64"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "results[t_0] = census[t_0]\n",
    "results"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "After that, the population in the model grows by a constant amount each year."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [],
   "source": [
    "for t in linrange(t_0, t_end):\n",
    "    results[t+1] = results[t] + annual_growth"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here's what the results looks like, compared to the actual data."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Saving figure to file figs/chap05-fig02.pdf\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot(census, ':', label='US Census')\n",
    "plot(un, '--', label='UN DESA')\n",
    "plot(results, color='gray', label='model')\n",
    "\n",
    "decorate(xlabel='Year', \n",
    "         ylabel='World population (billion)',\n",
    "         title='Constant growth')\n",
    "\n",
    "savefig('figs/chap05-fig02.pdf')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The model fits the data pretty well after 1990, but not so well before."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Exercises\n",
    "\n",
    "**Optional Exercise:**  Try fitting the model using data from 1970 to the present, and see if that does a better job.\n",
    "\n",
    "Hint: \n",
    "\n",
    "1. Copy the code from above and make a few changes.  Test your code after each small change.\n",
    "\n",
    "2. Make sure your `TimeSeries` starts in 1950, even though the estimated annual growth is based on later data.\n",
    "\n",
    "3. You might want to add a constant to the starting value to match the data better."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Solution\n",
    "\n",
    "def compute_annual_growth(t_0, t_end):\n",
    "    \"\"\"Average annual growth over given period.\n",
    "    \n",
    "    t_0: start date\n",
    "    t_end: end_date\n",
    "    \n",
    "    returns: average annual growth\n",
    "    \"\"\"\n",
    "    elapsed_time = t_end - t_0\n",
    "    p_0 = census[t_0]\n",
    "    p_end = census[t_end]\n",
    "    total_growth = p_end - p_0\n",
    "    annual_growth = total_growth / elapsed_time\n",
    "    return annual_growth\n",
    "\n",
    "# compute annual growth using data from 1970 to the end\n",
    "t_0 = 1970\n",
    "t_end = get_last_label(census)\n",
    "annual_growth = compute_annual_growth(t_0, t_end)\n",
    "\n",
    "# Run the simulation over the whole time range.\n",
    "# I subtract 0.45 from the initial value to shift\n",
    "# the fitted curve down so it fits the data better.\n",
    "t_0 = get_first_label(census)\n",
    "t_end = get_last_label(census)\n",
    "p_0 = get_first_value(census) - 0.45\n",
    "\n",
    "# initialize the result\n",
    "results = TimeSeries()\n",
    "results[t_0] = p_0\n",
    "\n",
    "# run the simulation\n",
    "for t in linrange(t_0, t_end):\n",
    "    results[t+1] = results[t] + annual_growth\n",
    "    \n",
    "# plot the results\n",
    "plot(census, ':', label='US Census')\n",
    "plot(un, '--', label='UN DESA')\n",
    "plot(results, '--', color='gray', label='model')\n",
    "\n",
    "decorate(xlabel='Year', \n",
    "         ylabel='World population (billion)',\n",
    "         title='Constant growth')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Year\n",
       "1960    3.043002\n",
       "1961    3.083967\n",
       "1962    3.140093\n",
       "1963    3.209828\n",
       "1964    3.281201\n",
       "1965    3.350426\n",
       "1966    3.420678\n",
       "1967    3.490334\n",
       "1968    3.562314\n",
       "1969    3.637159\n",
       "1970    3.712698\n",
       "Name: census, dtype: float64"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "census.loc[1960:1970]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
